/*
    Copyright (C) 2019 Zongming Liu <1849059316@qq.com>

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License along
    with this program; if not, write to the Free Software Foundation, Inc.,
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/

#include "../scene/StartScene.h"
#include "GameAppDelegate.h"
#include <ctime>
#include "../Game.h"

const int WinWidth = 1136;
const int WinHeight = 640;

//在这里 可以进行一些 初始化操作，并且开始 一个场景
bool GameAppDelegate::appInit()
{
    //设置帧率
    auto app = Application::getInstance();
    app->setPerFrameInterval(1 / 60.0f);

    // TODO 做自己想做的事情吧 。
    GameWorld::getInstance()->setTimeScale(1.0f);
    srand((unsigned)time(NULL));

#ifdef _DEBUG
    GameWorld::getInstance()->openDebugConsole();
    GameWorld::getInstance()->isDisplayRenderInfo(true);
#endif // _DEBUG

    if (!Game::getInstance()->loadResource())
    {
        return false;
    }

    Game::getInstance()->statrGame();

    //开始场景
    auto g = GameWorld::getInstance();
    g->start();

    return true;
}

//在这里提供窗口的大小
Size GameAppDelegate::getWindowsSize()
{
    return Size(WinWidth, WinHeight);
}

void GameAppDelegate::appEnterBackground()
{
    AudioManager::getInstance()->pauseAllAudio();
}

void GameAppDelegate::appEnterForeground()
{
    AudioManager::getInstance()->resumeAllAudio();
}
